<?php
namespace TbfProtocol;
/**
 * 包含了可以管理的几种返回类型,其他需求,要么加进来,要么不走这个系统
 */
class Response {
    //必有msg字段
    const TYPE_CLIENT_ERROR = 'client_error';
    //必有msg字段
    const TYPE_INNER_ERROR = 'inner_error';
    //模板数据
    const TYPE_TEMPLATE = 'template';
    const TYPE_DATA = 'data';
    const TYPE_REDIRECT = 'redirect';
    /** @var  string */
    public $type;
    /** @var  string */
    public $msg;
    /** @var  int TODO 这个变量有必要吗? */
    public $http_code;
    /** @var  string */
    public $tplName;
    /** @var  object */
    public $data;
    /** @var  string */
    public $url;

    /**
     * @return string
     */
    function __toString(){
        return \TbfEncoding::JsonEncodePretty($this);
    }

    function toArray(){
        return \TbfSerialize::objPublicFieldToArray($this);
    }
} 